package com.superquan.selfstudybootmybatis.utils.proxy.static_proxy;

/**
 * @program: self-study-bootmybatis
 * @ClassName UserDaoProxy
 * @description: 静态代理类 用于增加开启和关闭事务操作
 * @author: zwq
 * 优点：可以面向实际对象或者是接口的方式实现代理
 * 缺点：每个需要代理的对象都需要自己重复编写代理，很不舒服
 * 参考：https://juejin.cn/post/6844904125721772039#heading-37
 **/
public class UserDaoProxy extends UserDao {

    private UserDao userDao;

    //有参构造方法
    public UserDaoProxy(UserDao userDao) {
        this.userDao = userDao;
    }
    //在不修改UserDao接口类的情况下增加开启事务和关闭事务操作
     public void save(){
         System.out.println("开启事务操作。。。。");
         userDao.save();
         System.out.println("关闭事务操作。。。。");
     }
}
